{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import sigmf\n",
    "import scipy\n",
    "import matplotlib.pyplot as plt\n",
    "from py3gpp import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [],
   "source": [
    "handle = sigmf.sigmffile.fromfile('30720KSPS_dl_signal.sigmf-data')\n",
    "f = 1\n",
    "mu = 0\n",
    "apply_fine_CFO = 0\n",
    "\n",
    "waveform = handle.read_samples()\n",
    "waveform /= max(waveform.real.max(), waveform.imag.max()) # scale max amplitude to 1\n",
    "fs = handle.get_global_field(sigmf.SigMFFile.SAMPLE_RATE_KEY)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SNR = -3.1554784900982398 dB\n"
     ]
    }
   ],
   "source": [
    "# SC polar decoder can decode this when repeated bits in nrRateMatchPolar() are used\n",
    "noise = ((np.random.rand(waveform.shape[0]) - 0.5) + 1j*(np.random.rand(waveform.shape[0]) - 0.5))*1.1\n",
    "SNR = 10*np.log10((np.linalg.norm(waveform) / np.linalg.norm(noise)))\n",
    "#waveform += noise\n",
    "print(f'SNR = {SNR} dB')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "detected NID2 is 2\n"
     ]
    },
    {
     "data": {
      "image/png": "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9eKKK64QarW6U/IohOP5XLx4sdi/f79IT08XcXFx4uGHHxb+/v4iKSnJvI4rHk8hHM9rg1tuuUXMnTvXZrmrHlOlUikSEhJEQkKCACCWL18uEhISRHZ2thBCiNdff108/vjj5vUzMjJEQECA+O9//ysuXLggVq9eLby8vMS+ffvM67T03XUGR/P5888/C29vb7F69Wqra7Sqqsq8zquvvirCw8NFZmamOHbsmJg2bZro27evKCkpkTx/DRzN54oVK8TOnTtFamqqSExMFC+//LKQy+Xi0KFD5nXc4Xg2eOyxx8TkyZPtbtMVj+fzzz8vgoODRXh4uNV5WFtba16ns+6jLht4CCHEqlWrxNChQ4Wvr6+YNGmSOHHihPm922+/XcybN89q/S1btogrr7xS+Pr6ijFjxojdu3dbvW80GsXbb78tBgwYIPz8/MRdd90lUlJSpMhKsxzJ52WXXSYA2PxbtGiREEKI2tpacc8994h+/foJHx8fcdlll4lnnnmmUy/0Bo7k85VXXjGvO2DAAHHvvfeK+Ph4q+256vEUwvFzNzk5WQAQBw4csNmWqx7Thu6Ujf815G3evHni9ttvt/nM+PHjha+vrxgxYoT44YcfbLbb3HfXGRzN5+23397s+kKYuhEPGjRI+Pr6isGDB4u5c+eKtLQ0aTPWiKP5/PDDD8XIkSOFv7+/6N27t5g6dao4fPiwzXa7+vEUwtRltFu3buKbb76xu01XPJ728gjA6prrrPuorD6BRERERB3OJdt4EBERkXti4EFERESSYeBBREREkmHgQURERJJh4EFERESSYeBBREREkmHgQURERJJh4EFERESSYeBBREREkmHgQURERJJh4EFERESSYeBBREREkvl/rqvisYUlIvgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "carrier = nrCarrierConfig(NSizeGrid = 106, SubcarrierSpacing = 15 * 2**mu)\n",
    "info = nrOFDMInfo(carrier)\n",
    "Nfft = info['Nfft']\n",
    "\n",
    "peak_value = np.zeros(3)\n",
    "peak_index = np.zeros(3, 'int')\n",
    "pssIndices = np.arange((635-63), (635+64))\n",
    "fig, axs = plt.subplots(3, 1, facecolor='w', sharex=True, sharey=True)\n",
    "for current_NID2 in np.arange(3, dtype='int'):\n",
    "    slotGrid = nrResourceGrid(carrier)\n",
    "    slotGrid = slotGrid[:, 0]\n",
    "    slotGrid[pssIndices] = nrPSS(current_NID2)\n",
    "    [refWaveform, info] = nrOFDMModulate(carrier, slotGrid, SampleRate = fs)\n",
    "    refWaveform = refWaveform[info['CyclicPrefixLengths'][0]:]; # remove CP\n",
    "\n",
    "    temp = scipy.signal.correlate(waveform[:int(2e-3 * fs)], refWaveform, 'valid')  # correlate over 2 ms\n",
    "    peak_index[current_NID2] = np.argmax(np.abs(temp))\n",
    "    peak_value[current_NID2] = np.abs(temp[peak_index[current_NID2]])\n",
    "    t_corr = np.arange(temp.shape[0])/fs*1e3\n",
    "    axs[current_NID2].plot(t_corr, np.abs(temp))\n",
    "detected_NID2 = np.argmax(peak_value)\n",
    "print(f'detected NID2 is {detected_NID2}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "detected NID2 is 2\n",
      "max correlation is 492003.9349486953 at 284\n",
      "estimated cfo = -1941.4546362493172 Hz\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# optimized correlation with decimation, performed with integers\n",
    "\n",
    "dec_factor = 16\n",
    "fs2 = fs / dec_factor\n",
    "FFT_LEN = 2048//dec_factor\n",
    "cfo = 2000\n",
    "if True:\n",
    "    waveform2 = waveform.copy()\n",
    "    waveform2 *= np.exp(1j*2*np.pi*cfo/fs*np.arange(len(waveform2)))\n",
    "    waveform2 = scipy.signal.decimate(waveform2, dec_factor, ftype='fir')\n",
    "    # waveform2 *= np.exp(1j*2*np.pi*cfo/fs2*np.arange(len(waveform2)))\n",
    "    waveform2 /= max(waveform2.real.max(), waveform2.imag.max())\n",
    "    waveform2 *= 2**7\n",
    "    waveform2 = waveform2.real.astype(int) + 1j*waveform2.imag.astype(int)\n",
    "else:\n",
    "    PSS = np.zeros(FFT_LEN, 'complex')\n",
    "    PSS[FFT_LEN//2 - 64:][:127] = nrPSS(detected_NID2)\n",
    "    waveform2 = np.zeros(2000, 'complex')\n",
    "    waveform2[69:][:FFT_LEN] = np.fft.ifft(np.fft.fftshift(PSS))\n",
    "    waveform2 *= np.exp(1j*2*np.pi*cfo/fs2*np.arange(len(waveform2)))\n",
    "\n",
    "\n",
    "peak_value = np.zeros(3)\n",
    "peak_index = np.zeros(3, 'int')\n",
    "fig, axs = plt.subplots(3, 1, facecolor='w', sharex=True, sharey=True)\n",
    "for current_NID2 in np.arange(3, dtype='int'):\n",
    "    PSS = np.zeros(FFT_LEN, 'complex')\n",
    "    PSS[FFT_LEN//2 - 64:][:127] = nrPSS(current_NID2)\n",
    "    refWaveform = np.fft.ifft(np.fft.fftshift(PSS))\n",
    "    refWaveform /= max(refWaveform.real.max(), refWaveform.imag.max())\n",
    "    refWaveform *= 2**7\n",
    "    refWaveform = refWaveform.real.astype(int) + 1j*refWaveform.imag.astype(int)\n",
    "    temp = scipy.signal.correlate(waveform2[:1000], refWaveform, 'valid')  # correlate over 1000 samples\n",
    "    peak_index[current_NID2] = np.argmax(np.abs(temp))\n",
    "    peak_value[current_NID2] = np.abs(temp[peak_index[current_NID2]])\n",
    "    t_corr = np.arange(temp.shape[0])/(fs/dec_factor)*1e3\n",
    "    axs[current_NID2].plot(t_corr, np.abs(temp))\n",
    "detected_NID2 = np.argmax(peak_value)\n",
    "\n",
    "axs[detected_NID2].axvline(x = t_corr[peak_index[detected_NID2]], color = 'y', linestyle = '--', label = 'axvline - full height')\n",
    "print(f'detected NID2 is {detected_NID2}')\n",
    "print(f'max correlation is {peak_value[detected_NID2]} at {peak_index[detected_NID2]}')\n",
    "start_pos = peak_index[detected_NID2]\n",
    "# np.abs(np.dot(refWaveform.conj(), waveform2[peak_index[detected_NID2] :][:128]))\n",
    "\n",
    "C0 = np.vdot(refWaveform[:FFT_LEN//2], waveform2[start_pos:][:FFT_LEN//2])\n",
    "C1 = np.vdot(refWaveform[FFT_LEN//2:][:FFT_LEN//2], waveform2[start_pos + FFT_LEN//2:][:FFT_LEN//2])\n",
    "prod = C0 * np.conj(C1)\n",
    "estimated_cfo = np.arctan2(prod.imag, prod.real) / (2*np.pi) * fs2 / (FFT_LEN//2)\n",
    "print(f'estimated cfo = {estimated_cfo} Hz')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.6"
  },
  "orig_nbformat": 4,
  "vscode": {
   "interpreter": {
    "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
